﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using AutoBackupDatabase.BLL;
using AutoBackupDatabase.General;
using AutoBackupDatabase.ENT;

namespace AutoBackupDatabase
{
    public partial class Department_ucc : DevExpress.XtraEditors.XtraUserControl
    {
        private DEPARTMENTBLL departBLL;
        List<DEPARTMENTENT> listDepart;
        public Department_ucc()
        {
            InitializeComponent();
            departBLL = new DEPARTMENTBLL();
            listDepart = new List<DEPARTMENTENT>();
        }
        DETAILGROUPUSERROLEBLL checkRole = new DETAILGROUPUSERROLEBLL();

        private void Department_ucc_Load(object sender, EventArgs e)
        {
            try
            {
               
             
              

                LoadDataDepartment();
                if (gridView1.RowCount > 0)
                {
                    DEPARTMENTENT depart = (DEPARTMENTENT)gridView1.GetFocusedRow();
                    txtDepartmentID.Text = depart.DEPARTMENTID;
                    txtDepartmentName.Text = depart.DEPARTMENTNAME;
                }

            }
            catch (Exception)
            {
                    
                
            }
          
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (!checkRole.CHECKROLE(general.groupUserCode, Role.department_add))
            {
                MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                return;
            }
            
            if (btnAdd.Text=="THÊM MỚI")
            {
                general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);
                txtDepartmentID.Text = "";
                txtDepartmentName.Text = "";
                txtDepartmentID.Enabled = true;
                txtDepartmentName.Enabled = true;
                return;
            }
            else if(btnAdd.Text=="LƯU")
            {
                if (!Validator.IsNull(txtDepartmentID.Text))
                {
                    MessageBox.Show("Mã phòng ban không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                    return;
                }
                if (!Validator.IsNull(txtDepartmentName.Text))
                {
                    MessageBox.Show("Tên phòng ban không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                    return;
                }
                if (listDepart.Exists(p => p.DEPARTMENTID.Equals(Validator.TrimAll( txtDepartmentID.Text))))
                {
                    MessageBox.Show("Mã phòng ban này [" + txtDepartmentID.Text + "] đã tồn tại vui lòng nhập tên khác", "Thông báo");
                    return;
                }
                if (listDepart.Exists(p => p.DEPARTMENTNAME.Equals(txtDepartmentName.Text.TrimStart().TrimEnd())))
                {
                    MessageBox.Show("Tên phòng ban này [" + txtDepartmentName.Text + "] đã tồn tại vui lòng nhập tên khác", "Thông báo");
                    return;
                }





                DEPARTMENTENT ent = new DEPARTMENTENT();
                ent.DEPARTMENTID = Validator.TrimAll( txtDepartmentID.Text);
                ent.DEPARTMENTNAME = txtDepartmentName.Text.TrimStart().TrimEnd();
                if (departBLL.INSERTDEPARTMENT(ent))
                {
                    txtDepartmentID.Text = "";
                    txtDepartmentName.Text = "";
                    general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);

                    MessageBox.Show("Thêm mới thành công", "Thông báo");
                    txtDepartmentID.Enabled = false;
                    txtDepartmentName.Enabled = false;
                    
                    LoadDataDepartment();
                }
                else
                {
                    MessageBox.Show("Thêm mới thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
                }
            }
            else
                MessageBox.Show("Thêm mới thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                if (!checkRole.CHECKROLE(general.groupUserCode, Role.department_edit))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnUpdate.Text == "CẬP NHẬT")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                    txtDepartmentID.Enabled = false;
                    txtDepartmentName.Enabled = true;
                    return;

                }
                else
                    if (btnUpdate.Text == "HỦY")
                    {
                        general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                        txtDepartmentID.Enabled = false;
                        txtDepartmentName.Enabled = false;
                    }
                    else if (btnUpdate.Text == "LƯU")
                    {

                        if (!Validator.IsNull(txtDepartmentID.Text))
                        {
                            MessageBox.Show("Mã phòng ban không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                            return;
                        }
                        if (!Validator.IsNull(txtDepartmentName.Text))
                        {
                            MessageBox.Show("Tên phòng ban không được bỏ trống vui lòng kiểm tra lại", "Thông báo");
                            return;
                        }
                        if (listDepart.Exists(p => p.DEPARTMENTNAME.Equals(txtDepartmentName.Text.TrimStart().TrimEnd())))
                        {
                            MessageBox.Show("Tên phòng ban này [" + txtDepartmentName.Text + "] đã tồn tại vui lòng nhập tên khác", "Thông báo");
                            return;
                        }


                        DEPARTMENTENT ent = new DEPARTMENTENT();
                        ent.DEPARTMENTID = txtDepartmentID.Text;
                        ent.DEPARTMENTNAME = txtDepartmentName.Text.TrimStart().TrimEnd();
                        if (departBLL.UPDATEDEPARTMENTBYDEPARTMENTID(ent))
                        {
                            MessageBox.Show("Cập nhật thành công", "Thông báo");
                            LoadDataDepartment();
                            general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                            txtDepartmentID.Enabled = false;
                            txtDepartmentName.Enabled = false;
                        }
                    }
                    else
                        MessageBox.Show("Cập nhật thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
            }
            catch (Exception)
            {

                return;
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {

                if (!checkRole.CHECKROLE(general.groupUserCode, Role.department_delete))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnDelete.Text == "HỦY")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                      txtDepartmentID.Enabled = false;
                txtDepartmentName.Enabled = false;
                }
                else if (btnDelete.Text == "XÓA" &&Validator.IsNull(txtDepartmentID.Text))
                {
                    if (MessageBox.Show(MessageShow.delConfirmInfo, MessageShow.delConfirmCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        DEPARTMENTENT ent = new DEPARTMENTENT();
                        ent.DEPARTMENTID = txtDepartmentID.Text;
                        departBLL.DELTELEDEPARTMENTBYDEPARTMENTID(ent);
                        LoadDataDepartment();
                        general.ChangeButtonStatus("delete", btnAdd, btnUpdate, btnDelete);
                    }
                }
                else
                    return;
            }
            catch (Exception)
            {

                return;
            }
        }

        public void LoadDataDepartment()
        {
            listDepart=departBLL.GET_DEPARTMENT_ALL();
            gridControl1.DataSource = listDepart;
            if (gridView1.RowCount>0)
            {
                gridView1.InvertRowSelection(0);
            }
        }

        private void r(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {

        }

        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            try
            {
                if (e.RowHandle >= 0)
                {
                    DEPARTMENTENT depart = (DEPARTMENTENT)gridView1.GetFocusedRow();
                    txtDepartmentID.Text = depart.DEPARTMENTID;
                    txtDepartmentName.Text = depart.DEPARTMENTNAME;
                }
            }
            catch (Exception)
            {

                return;
            }
        }

       
    }
}
